package com.open.basic.constant;

import java.text.SimpleDateFormat;

/**
 * @author system
 * @Date 2023/12/3 13:26
 * @description 系统常量
 */
public interface SystemConst {

    ThreadLocal<SimpleDateFormat> DATE_FORMAT_THREAD_LOCAL = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

    /**
     * 完整的日期时间格式 yyyy-MM-dd HH:mm:ss
     */
    String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";

    /**
     * 短日期格式（年-月-日）
     */
    String DATE_FORMAT_SHORT = "yyyy-MM-dd";

    /**
     * 短时间格式（小时:分钟:秒）
     */
    String DATE_FORMAT_SHORT_TIME = "HH:mm:ss";

    /**
     * 操作成功
     */
    String SUCCESS = "success";
    /**
     * 操作失败
     */
    String FAIL = "fail";

    /**
     * 性别男
     */
    int SEX_MALE = 1;
    /**
     * 性别女
     */
    int SEX_FEMALE = 0;
    /**
     * 状态 启用
     */
    int STATUS_USE = 1;
    /**
     * 状态 禁用
     */
    int STATUS_DISABLE = 2;
    /**
     * 状态 删除
     */
    int STATUS_DELETE = 3;
    /**
     * 状态 锁定
     */
    int STATUS_LOCK = 4;

    /**
     * 查看操作
     */
    String OPERATION_VIEW = "view";

    /**
     * 添加操作
     */
    String OPERATION_ADD = "add";

    /**
     * 更新操作
     */
    String OPERATION_UPDATE = "update";

    /**
     * 删除操作
     */
    String OPERATION_DELETE = "delete";

    /**
     * 查询操作
     */
    String OPERATION_QUERY = "query";

    /**
     * 登录操作
     */
    String OPERATION_LOGIN = "login";

    /**
     * 注销操作
     */
    String OPERATION_LOGOUT = "logout";

    /**
     * 上传操作
     */
    String OPERATION_UPLOAD = "upload";

    /**
     * 下载操作
     */
    String OPERATION_DOWNLOAD = "download";

    /**
     * 导出操作
     */
    String OPERATION_EXPORT = "export";

    /**
     * 导入操作
     */
    String OPERATION_IMPORT = "import";

    /**
     * 注册操作
     */
    String OPERATION_REGISTER = "register";
    /**
     * 忘记密码
     */
    String FORGET_PASSWORD = "forget";
    /**
     * 修改密码
     */
    String CHANGE_PASSWORD = "change";

    String JWT_HEADER = "Authorization";
    /**
     * JWT 过期时间 单位秒 30 分钟
     */
    int JWT_EXPIRE = 1000 * 60 * 30;
    /**
     * JWT 秘钥
     */
    String JWT_SECRET = "battle-secret";
    /**
     * JWT 前缀
     */
    String JWT_PREFIX = "Bearer ";

    String JWT_CREATED = "created";

    /**
     * 超级管理员 角色
     */
    String SUPER_ADMIN = "admin";
}
